package main

import (
	"fmt"
	"net"
)

func main() {
	// 指定服务器通信协议,ip地址和端口号
	// 参数1: 协议类型, 可选tcp或udp
	// 参数2: ip地址:端口号
	listener, err := net.Listen("tcp", "127.0.0.1:8000")
	defer listener.Close()
	if err != nil {
		fmt.Println("net.Listen err: ", err)
		return
	}
	fmt.Println("服务器等待客户端建立连接...")
	// 阻塞监听客户端连接请求
	conn, err := listener.Accept()
	defer conn.Close()
	if err != nil {
		fmt.Println("listener.Accept() err: ", err)
		return
	}
	fmt.Println("服务器与客户端成功建立连接...")
	//读取客户端发送的数据
	buf := make([]byte, 1024*4)
	n, err := conn.Read(buf)
	if err != nil {
		fmt.Println("conn.Read() err: ", err)
		return
	}
	// 处理数据
	fmt.Println("服务器读到数据: ", string(buf[:n]))
	// 写数据: 原封不动的写
	conn.Write(buf[:n])
}
